#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#隧道代理抓取页面，用来实时监控自己的电视剧更新到第几集了
#本工具纯属新手瞎j8写，大佬请绕路，谢谢！！
import re
import requests
import time
import os

files = "txsp.txt"
print("==========================程序运行时间预计二十秒==========================")
time.sleep(1)
########################## 代理API处理 #########################
#使用requests请求代理服务器
#请求http和https网页均适用

# 提取代理API接口，获取1个代理IP
api_url = "你的API接口地址"
# 获取API接口返回的代理IP
proxy_ip = requests.get(api_url).text
# 用户名密码认证(私密代理/独享代理)
tv = "你电视剧的名字"
username = "你的代理用户名"
password = "你的代理密码"
# 要访问的目标网页
target_url = "你想要监视的视频URL"
proxies = {
    "http": "http://%(user)s:%(pwd)s@%(proxy)s/" % {"user": username, "pwd": password, "proxy": proxy_ip},
    "https": "http://%(user)s:%(pwd)s@%(proxy)s/" % {"user": username, "pwd": password, "proxy": proxy_ip}
}
# 白名单方式（需提前设置白名单）
# proxies = {
#     "http": "http://%(proxy)s/" % {"proxy": proxy_ip},
#     "https": "http://%(proxy)s/" % {"proxy": proxy_ip}
# }

# 使用代理IP发送请求
response= requests.get(target_url, proxies=proxies)
result= response.text

########################## 页面内容处理 #########################

def feature(txt):
#将网页的文字特征用正则表达式匹配
    while True:
        try:
            with open(txt,"r",encoding = "utf-8")as file:
                match = re.search(r'VIP用户每周日10点更新1集，SVIP用户限时福利抢先1天看1集（每周六18:00）\u002F更新至(\d+)集',file.read())
                print('{}更新至：{}集。'.format(tv,match.group(1)))
        except :
            del_file()
            print("检测到该网站有防爬取功能，写入文件乱码，请二十秒后重试一次，或者切换ip！！")
            exit(0)
        else:
            del_file()
            exit(0)
#删除文件
def del_file():
    file_path = "./txsp.txt"  # 要删除的文件路径
    try:
        os.remove(file_path)
        print(f"过程文件 {file_path} 已删除")
    except FileNotFoundError:
        print(f"文件 {file_path} 未找到，无法删除")
    except PermissionError:
        print(f"没有权限删除文件 {file_path}")
    except Exception as e:
        print(f"删除文件时发生错误: {e}")

# 获取页面内容
#把爬取到的内容写入files文件中
def read_files():
    with open(files,"w",encoding = "utf-8")as file:
        file.write(result)
        print('================================请等待10秒================================')
        time.sleep(10)#防止写入过慢

if response.status_code == 200:
    read_files()
    feature(files)
        
